/**
 * BM1 反转链表
 */

class ListNode {
  val: number;
  next: ListNode | null;
  constructor(val?: number, next?: ListNode | null) {
    this.val = val === undefined ? 0 : val;
    this.next = next === undefined ? null : next;
  }
}

/**
 * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
 *
 * @param head ListNode类
 * @return ListNode类
 */
export function ReverseList(head: ListNode): ListNode {
  // write code here
  // console.log(head);

  let tempNode;
  let preNode = null;
  while (head && head.next) {
    tempNode = head.next;
    head.next = preNode;
    preNode = head;
    head = tempNode;
    //console.log(head.val);
  }
  if (head) {
    head.next = preNode;
    //console.log(head.val);
  }

  return head;
}

console.log(ReverseList(new ListNode(1, new ListNode(2, new ListNode(3)))));
